/*******************************************************************************
 * Copyright (c) 2011-11-10 @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a>.
 * All rights reserved.
 *
 * Contributors:
 *     <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> - initial API and implementation
 ******************************************************************************/
package com.redhat.auth.ejb.vo;

import java.io.Serializable;

import org.apache.commons.lang.builder.ToStringBuilder;

/**
 * @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> 
 * @since 2011-11-10
 */
public class FunctionEntityVO implements Serializable {

	private static final long serialVersionUID = 6049288600467347786L;
	public static final int STATUS_DISABLED = 0;
	public static final int STATUS_ENABLED = 1;

	private Long id;
	// 名称
	private String name;

	// 别名
	private String alias;

	// 状态
	private int status = -1;

	// 备注
	private String description;

	// 父实体
	private FunctionEntityVO parent;

	// 类型
	private FunctionEntityTypeVO functionEntityType;

	public FunctionEntityVO() {
		super();
	}

	public FunctionEntityVO(Long id, String name, String alias, int status,
			String description, FunctionEntityVO parent,
			FunctionEntityTypeVO functionEntityType) {
		this();
		this.name = name;
		this.alias = alias;
		this.status = status;
		this.description = description;
		this.parent = parent;
		this.functionEntityType = functionEntityType;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAlias() {
		return alias;
	}

	public void setAlias(String alias) {
		this.alias = alias;
	}

	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public FunctionEntityVO getParent() {
		return parent;
	}

	public void setParent(FunctionEntityVO parent) {
		this.parent = parent;
	}

	public FunctionEntityTypeVO getFunctionEntityType() {
		return functionEntityType;
	}

	public void setFunctionEntityType(FunctionEntityTypeVO functionEntityType) {
		this.functionEntityType = functionEntityType;
	}

	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}
}
